package juego.Tablero;

abstract public class Punto {

	protected int coordenadaX;
	protected int coordenadaY;
	
	abstract public int mostrarCoordenadaX();
	
	abstract public int mostrarCoordenadaY();
	
	public boolean esMismoPunto(Punto puntoComparacion) {
		return this.mostrarCoordenadaX() == puntoComparacion.mostrarCoordenadaX()
			&&	this.mostrarCoordenadaY() == puntoComparacion.mostrarCoordenadaY();
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + coordenadaX;
		result = prime * result + coordenadaY;
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Punto other = (Punto) obj;
		if (coordenadaX != other.coordenadaX)
			return false;
		if (coordenadaY != other.coordenadaY)
			return false;
		return true;
	}
	
	// devuelve la distancia entre el punto receptor y el puntoComparacion 
	// cero si receptor = puntoComparacion
	// positivo si receptor > puntoComparacion
	// negativo si receptor < puntoComparacion
	
}
